const router = require("koa-router")();
const GOODS = require("../models/goods");
const auth = require("../utils");
router.prefix("/goods");
// 这段代码是使用Koa框架和koa-router中间件来创建一个路由对象，并将其导出。该路由对象具有以下功能：
//
// 1. 引入了koa-router模块，并创建了一个空的路由对象。
// 2. 引入了名为"GOODS"的模型，用于处理商品相关的数据操作。
// 3. 引入了名为"auth"的验证工具，用于对请求进行身份验证。
// 4. 设置了路由的前缀为"/goods"，即所有以"/goods"开头的请求都将被该路由对象处理。
//
// 通过这个路由对象，可以定义各种HTTP请求的处理函数，例如GET、POST、PUT、DELETE等，来实现对商品的增删改查等操作。



// 新增
router.post("/addGoods", async function (ctx, next) {
  ctx.body = await GOODS.create(ctx.request.body);
});

//查询
router.post("/getGoods", async function (ctx, next) {
  ctx.body = await GOODS.find();
});

//搜索商品
router.get("/query/:msg", async function (ctx, next) {
  ctx.body = await GOODS.find({ title: new RegExp(ctx.params.msg, "ig") });
});

// 修改
router.put("/:id", auth, async function (ctx, next) {
  ctx.body = await GOODS.findByIdAndUpdate(ctx.params.id, ctx.request.body);
});

// 删除
router.delete("/:id", auth, async function (ctx, next) {
  ctx.body = await GOODS.findByIdAndDelete(ctx.params.id);
});

module.exports = router;

// 这段代码是使用Koa框架和koa-router中间件来创建一个路由对象，并将其导出。该路由对象具有以下功能：
//
// 1. 新增商品：通过POST请求访问"/addGoods"路径，将请求体中的商品信息添加到数据库中。
// 2. 查询商品：通过POST请求访问"/getGoods"路径，从数据库中查询所有商品信息并返回。
// 3. 搜索商品：通过GET请求访问"/query/:msg"路径，根据传入的msg参数在数据库中搜索匹配的商品信息并返回。
// 4. 修改商品：通过PUT请求访问"/:id"路径，根据传入的id参数在数据库中查找对应的商品信息，并将请求体中的商品信息更新到数据库中。
// 5. 删除商品：通过DELETE请求访问"/:id"路径，根据传入的id参数在数据库中查找对应的商品信息，并将其从数据库中删除。
//
// 最后，将该路由对象导出，以便在其他文件中使用。
